package com.gorkr;

import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;

/**
 * @author gorkr
 * @date 2022/06/22 10:51
 **/
public class E1TwoSum {
//    public int[] twoSum(int[] nums, int target) {
//
//
//        int [] before = nums.clone();
//
//
//        Arrays.sort(nums);
//
//        int lo = 0, hi = nums.length - 1;
//        while (lo < hi) {
//            int sum = nums[lo] + nums[hi];
//            if (sum < target) {
//                // 这两个替换有问题吗
//                lo++;
//            } else if (sum > target) {
//                hi--;
//            }else {
////                System.out.println(Arrays.toString(before));
//                return new int[]{Arrays.binarySearch(before,nums[lo]) ,Arrays.binarySearch(before,nums[hi])};
//            }
//        }
//        return new int[]{};
//
//
//    }

    public int[] twoSum(int[] nums, int target){
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int leave = target - nums[i];
            if (!map.containsKey(leave)) {
                map.put(nums[i],i);
            }else {
                return new int[]{map.get(leave),i};
            }
        }
        return new int[]{};


    }

    @Test
    public void test(){
        int[] nums = {3,2,3,4};
        int target = 6;
        System.out.println(Arrays.toString(twoSum(nums, target)));
    }

}
    